This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
In the field of computer systems, it may be desirable for information to be transferred from a system memory associated with one computer system to a system memory associated with another computer system. The information may be transmitted by upper layer protocols (“ULPs”), which may be referred to as consumers, through a network that connects the computer systems together. These ULPs may utilize other protocols to perform the actual data exchanges between the computer systems. Typically, a ULP may not manage the transfer of data once the data exchange has been initiated. A consumer ULP may be utilized by an application protocol, such as the iSCSI protocol, so the iSCSI protocol may run on the network. The iSCSI protocol implementation may efficiently manage the data buffers, and may employ protocol mechanisms to realize the same.
To efficiently manage the buffers, the application protocol may proactively seek data acknowledgements from the application protocol on the other computer system. For instance, the target computer system may be sending data to an initiator computer system. The application protocol on the target computer system may seek data acknowledgements from the initiator computer system to confirm that data has been received. By verifying that the data is received at the initiator computer system, the application protocol on the target computer system may be aware that certain data will not be requested for retransmission. As a result, the application protocol on the target computer system may release the buffers for other uses.
However, the data acknowledgement process may pose certain problems. For instance, in some situations, the application protocol at the initiator computer system may not be involved in the data movement between the systems. When the initiator's application protocol is unaware of the actual data movement, it may be unable to confirm to the application protocol of the target of the data transfer. In addition, if the application protocol of the target sends an acknowledgement request, an interrupt may be generated to the application protocol on the initiator computer system to handle the request. In such a case, the number of interrupts that the initiator computer system may have to handle is unlimited, which may violate traditional expectations on storage hardware not to require more than a single interrupt per input/output transaction.